package us.proyecto.canarios.domain;

// Generated 01-abr-2008 13:12:10 by Hibernate Tools 3.2.0.b11

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Clase que mapea la tabla ANIO
 * @author Juan Antonio Mena Sánchez
 *
 */
@Entity
@Table(name = "PROVINCIA")
public class Provincia implements java.io.Serializable {

    private static final long serialVersionUID = 1723159319244204587L;
    private byte provincia;
    private String nombre;
    private short prefijoTefn;
    private byte comunidad;
    private Set<Municipio> municipioses = new HashSet<Municipio>(0);

    /**
     * Constructor vacío por defecto
     */
    public Provincia() {
    }

    public Provincia(byte provincia, String nombre, short prefijoTefn, byte comunidad) {
        this.provincia = provincia;
        this.nombre = nombre;
        this.prefijoTefn = prefijoTefn;
        this.comunidad = comunidad;
    }


    @Id
    @Column(name = "PROVINCIA", nullable = false, precision = 2, scale = 0)
    public byte getProvincia() {
        return this.provincia;
    }

    public void setProvincia(byte provincia) {
        this.provincia = provincia;
    }

    @Column(name = "NOMBRE", nullable = false, length = 32)
    public String getNombre() {
        return this.nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    @Column(name = "PREFIJO_TEFN", nullable = false, precision = 3, scale = 0)
    public short getPrefijoTefn() {
        return this.prefijoTefn;
    }

    public void setPrefijoTefn(short prefijoTefn) {
        this.prefijoTefn = prefijoTefn;
    }

    @Column(name = "COMUNIDAD", nullable = false, precision = 2, scale = 0)
    public byte getComunidad() {
        return this.comunidad;
    }

    public void setComunidad(byte comunidad) {
        this.comunidad = comunidad;
    }

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "provincias")
    public Set<Municipio> getMunicipioses() {
        return this.municipioses;
    }

    public void setMunicipioses(Set<Municipio> municipioses) {
        this.municipioses = municipioses;
    }

    @Override
    public boolean equals(Object obj) {
    	if(obj instanceof Provincia) {
    		return this.getProvincia() == ((Provincia)obj).getProvincia();
    	}else{
    		return false;
    	}
    }

    @Override
    public int hashCode() {
    	// TODO Auto-generated method stub
    	return super.hashCode();
    }

}
